package helper.scxml.strategy.sNodeUnit

import helper.base.A2LHM
import helper.base.string.ToLStringHelper.IToL2String
import helper.base.string.ToStrHelper.IToStr
import helper.scxml.scxml2.zone.t2.ConfigHelper.Config
import helper.scxml.strategy.StrategyHelper.TimedEventHelper.TimedEvent
import helper.scxml.strategy.TotalStrategyHelper.IZoneTotalStrategy

object SNodeUnitHelper {
    interface ISNodeUnit : IZoneTotalStrategy, IToStr, IToL2String {
        fun getMsTimeEventChoiceWeightLHM(
            config: Config,
        ): A2LHM<List<TimedEvent>, Double>

        fun getMsTimeEventChoiceArrArr(
            config: Config,
        ): Array<List<TimedEvent>> {
            return getMsTimeEventChoiceWeightLHM(
                config,
            ).keys.toTypedArray()
        }

        val ifCanSendEventHaveSent: Boolean
            get() {
                return false
            }
    }
}